package com.dhcc.bpm.modules.scf.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dhcc.bpm.modules.scf.dto.ScfRecyclingInInfoDTO;
import com.dhcc.bpm.modules.scf.entity.ScfRecyclingInInfo;
import com.dhcc.bpm.modules.scf.vo.ScfRecyclingInInfoVO.ScfGetRecyclingInDetailsVO;
import com.dhcc.bpm.modules.scf.vo.ScfRecyclingInInfoVO.ScfGetRecyclingInListVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface IScfRecyclingInInfoService extends IService<ScfRecyclingInInfo> {
    /**
     * 自定义查询列表
     *
     * @param page
     * @param scfRecyclingInInfo
     * @return
     */
    IPage<ScfGetRecyclingInListVO> selectScfRecyclingInInfoPage(IPage<ScfGetRecyclingInListVO> page, ScfRecyclingInInfoDTO scfRecyclingInInfo);

    /**
     * 查看入库详情信息
     *
     * @param scfRecyclingInInfo
     * @return
     */
    ScfGetRecyclingInDetailsVO getDetails(ScfRecyclingInInfoDTO scfRecyclingInInfo);

    /**
     * 新增入库信息
     *
     * @param scfRecyclingInInfo
     * @return
     */
    Boolean saveRecyclingInInfo(ScfRecyclingInInfoDTO scfRecyclingInInfo) throws Exception;

    /**
     * 导入入库信息
     *
     * @param scfRecyclingInInfos
     * @return
     */
    int bachSaveRecyclingInInfo(List<ScfRecyclingInInfo> scfRecyclingInInfos, String operatorId);

    /**
     * 更新入库信息
     *
     * @param scfRecyclingInInfo
     * @return
     */
    Boolean updateRecyclingInInfo(ScfRecyclingInInfoDTO scfRecyclingInInfo);

    /**
     * 利废入库信息-批量导入
     * 当前用户ID
     *
     * @param file
     * @return
     */
    List<ScfRecyclingInInfo> batchSaveRecyclingInInfo(String operatorId, MultipartFile file) throws IOException;

    Boolean deleteByIds(String[] split);
}
